package com.qingzhuge.pageview.dao;

import com.qingzhuge.dao.BasePkLongDao;
import com.qingzhuge.pageview.entity.SysPageView;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

/**
 * @author : zero.xiao
 * @description :
 * @date : 2019/1/17 0017 下午 14:50
 * @modified :
 * @since :
 */
public interface ISysPageViewDao extends BasePkLongDao<SysPageView> {

    @Query("select new SysPageView(p.vp) from SysPageView p where p.module = :module and p.objId = :objId")
    SysPageView findVpByModuleAndObjId(@Param("module") String module,@Param("objId") String objId);

    @Query("select new SysPageView(p.module,p.objId,p.vp) from SysPageView p where p.module = :module and p.objId = :objId")
    SysPageView findByModuleAndObjId(@Param("module") String module,@Param("objId") String objId);

    /**
     * 浏览量加1
     * @param module 模块名称
     * @param objId 对象id
     * @return 执行结果
     */
    @Modifying
    @Query("update SysPageView p set p.vp = p.vp + 1 where p.module = :module and p.objId = :objId")
    void updateVpByModuleAndObjId(@Param("module") String module,@Param("objId") String objId);
}
